The invention relates generally to computer systems, and deals more particularly with a computer operating system which supports asynchronous commitment of data updates.
In some computer systems such as an IBM Multiple Virtual Storage/Enterprise Systems Architecture computer system, external storage devices such as Direct Access Storage Devices (DASD) are provided to store application program data. This computer system also includes virtual storage which is directly accessible by the application program. The virtual storage is storage that represents available storage for an application program and is addressable by the application program. The operating system and hardware correlate the virtual storage with actual storage that is available to the application program. The application program uses an operating system interface called "data-in-virtual" mapping interface to establish a correlation, known as a "mapping," between some set of blocks on the application's DASD and a corresponding set of locations in the application's virtual storage. This interface and the resultant mapping allow the application program to access data stored on the application's DASD without the need to request explicit I/O operations to load the data from or store the data to the application's DASD.
To update a set of mapped data, the application program simply references the mapped virtual storage pages which include the data. When a page of mapped virtual storage is first accessed in this manner, the operating system copies the data from the application's DASD into main storage (random access memory--"RAM") where it is available for manipulation by the application program. As is common for virtual storage systems, if the main storage is overloaded, the operating system may later move pages of virtual storage into other RAM which serves as a back-up or onto other "paging" DASD. This frees main storage (RAM) for other actively referenced pages of other application programs.
At various checkpoints during processing of the data in the virtual storage and at the end of processing, the application program requests that the data be committed, i.e. written onto DASD. The checkpoints at which an application program requests commit vary but often include the end of a transaction or fixed time intervals. In response to the commit request, the operating system copies the data from main storage if the data resides there into the mapped application program's DASD locations. If the data resides in either back-up RAM or paging DASD, the data must be first read into the main storage before being written into the mapped application program's DASD locations.
Immediately after the application program requests the commit and during the time that the data is being committed, i.e. written to the corresponding DASD, either directly from main memory or from back-up storage or paging DASD via main memory, the application program is suspended.
These operations require significant time with a corresponding delay to the application program. Also, if much data must be read from paging DASD and/or written to the application program's DASD at the time of commit, the I/O devices which are involved in this I/O operation may be overloaded. The result of such overloading is additional delay for the application program. When the operating system completes the commit operation, the operating system resumes the application program to continue with other work.
In some other virtual storage and real storage operating systems an application program actively manages I/O operations to DASD using read and write services of the operating system. To provide such management, the application program determines which pages have been changed (and therefore must be written to DASD) and identifies the changed pages to the read and write service. The read and write service often includes an initial validation phase in which the service validates the I/O request and a subsequent phase of actually reading or writing the data. In some prior art systems of this type, during the initial validation phase, the application program is suspended, but during the actual reading or writing phase, the application program is not suspended. While this asynchronous operation of the application program during the actual reading and writing of data reduces the investment of time by the application in the commit process, the application program must still invest considerable time in managing the read and write service.
Accordingly, a general object of the present invention is to provide an operating system that improves the efficiency of application programs that utilize the operating system and the operating system itself during the process of committing data.
Another object of the present invention is to provide a computer system of the foregoing type which avoids overloading I/O devices during commit processing, reduces the need to copy data from main storage to paging DASD, and reduces the need to copy data from paging DASD during commit processing.